Many computer performance monitoring tools have been developed in the prior art for the purpose of evaluating computer systems. Most have been conceived with different goals in mind. Some of these tools are software, some hardware; many of the hardware measurement devices require program analysis of their output, and some of the software tools require input data that is collected by one of the hardware devices.
All monitors can basically be divided into two categories; counters and recorders. The counter counts the number of occurrences of an event and the counter output usually represents some kind of meaningful information. The recorder, on the other hand, collects data about a defined event on some recording media for later processing to make the data meaningful. Most generally, the recorder is used when the event to be analyzed is of a complex nature. Tracing programs can perform the recorder type of monitoring. Early IBM counter type monitors usually monitored six mutually exclusive states in a processor, which were:
1. Total operation time, PA1 2. Channel A operation time, PA1 3. Channel B operation time, PA1 4. CPU operation time, no I/O in process, PA1 5. Tape equipment operation time, CPU in wait state. PA1 6. Card equipment operation time, CPU in wait state.
Software monitors and tracing programs universally have the problem of distorting the processor operations which they are measuring, because they compete for some of the same system resources.
All monitoring functions also fall into two classes: those that sense hooks specially put into the code to assist a monitoring operation, and those that sense some characteristic of a program provided to perform the program's function. Hooks are special instructions inserted into the code for reasuring purposes. The monitor call (MC) instruction in the IBM System/370 architecture is provided for use as a hook in program code. For example, a hook may be put into a routine or queue, so that the number of times such hook instruction executes can be counted to determine the number of times that the routine or queue is entered by a program. A hardware monitor has been used to sense and count the occurrence of a hook instruction. Monitor functions which have been used to sense non-hook program characteristics, for example, have sensed the frequency of occurrence of specified instruction operation coded and the address distribution of requests to main storage.
Background on monitors and their use is described in a book entitled "Evaluation and Measurement Techniques for Digital Computer Systems" by M. E. Drummond, Jr. published in 1973 by Prentice-Hall, Inc., Inglewood Cliffs, N.J.
Examples of patents on data processing system hardware monitors which use counters as an output entity are represented by U.S. Pat. No. 3,399,298 to H. M. Taylor entitled "Data Processor Profitability Monitoring Apparatus"; U.S. Pat. No. 3,588,837 to R. D. Rash et al entitled "Systems Activity Monitor" and U.S. Pat. No. 4,068,304 to W. F. Beausoleil et al entitled "Storage Hierarchy Performance Monitor".
There are also hardware monitors being commercially sold such as the Comten 8028 monitor and the Tesdata monitor.